home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagn_r.zip / NETWORK.SWG / 0002_GET-ID1.PAS.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  3KB  |  89 lines

  1. { TS> Can anybody help me finding the interrupt For getting
  2.  TS> a novell current user_name and the current station adress ??
  3. }
  4. Procedure GetConnectionInfo
  5. (Var LogicalStationNo: Integer; Var Name: String; Var HEX_ID: String;
  6.  Var ConnType : Integer; Var DateTime : String; Var retcode:Integer);
  7.  
  8. Var
  9.   Reg            : Registers;
  10.   I,X            : Integer;
  11.   RequestBuffer  : Record
  12.                      PacketLength : Integer;
  13.                      FunctionVal  : Byte;
  14.                      ConnectionNo : Byte;
  15.                    end;
  16.   ReplyBuffer    : Record
  17.                      ReturnLength : Integer;
  18.                      UniqueID1    : Packed Array [1..2] of Byte;
  19.                      UniqueID2    : Packed Array [1..2] of Byte;
  20.                      ConnType     : Packed Array [1..2] of Byte;
  21.                      ObjectName   : Packed Array [1..48] of Byte;
  22.                      LoginTime    : Packed Array [1..8] of Byte;
  23.                    end;
  24.   Month          : String[3];
  25.   Year,
  26.   Day,
  27.   Hour,
  28.   Minute         : String[2];
  29.  
  30. begin
  31.   With RequestBuffer Do begin
  32.     PacketLength := 2;
  33.     FunctionVal := 22;  { 22 = Get Station Info }
  34.     ConnectionNo := LogicalStationNo;
  35.   end;
  36.   ReplyBuffer.ReturnLength := 62;
  37.   With Reg Do begin
  38.     Ah := $e3;
  39.     Ds := Seg(RequestBuffer);
  40.     Si := ofs(RequestBuffer);
  41.     Es := Seg(ReplyBuffer);
  42.     Di := ofs(ReplyBuffer);
  43.   end;
  44.   MsDos(Reg);
  45.   name := '';
  46.   hex_id := '';
  47.   connType := 0;
  48.   datetime := '';
  49.   if Reg.al = 0 then begin
  50.     With ReplyBuffer Do begin
  51.       I := 1;
  52.       While (I <= 48)  and (ObjectName[I] <> 0) Do begin
  53.         Name[I] := Chr(Objectname[I]);
  54.         I := I + 1;
  55.       end { While };
  56.       Name[0] := Chr(I - 1);
  57.       if name<>'' then
  58.       begin
  59.        Str(LoginTime[1]:2,Year);
  60.        Month := Months[LoginTime[2]];
  61.        Str(LoginTime[3]:2,Day);
  62.        Str(LoginTime[4]:2,Hour);
  63.        Str(LoginTime[5]:2,Minute);
  64.        if Day[1] = ' ' then Day[1] := '0';
  65.        if Hour[1] = ' ' then Hour[1] := '0';
  66.        if Minute[1] = ' ' then Minute[1] := '0';
  67.        DateTime := Day+'-'+Month+'-'+Year+' ' + Hour + ':' + Minute;
  68.       end;
  69.     end { With };
  70.   end;
  71.   retcode := reg.al;
  72.   if name<>'' then
  73.   begin
  74.    hex_id := '';
  75.    hex_id := hexdigits[replybuffer.uniqueid1[1] shr 4];
  76.    hex_id := hex_id + hexdigits[replybuffer.uniqueid1[1] and $0F];
  77.    hex_id := hex_id + hexdigits[replybuffer.uniqueid1[2] shr 4];
  78.    hex_id := hex_id + hexdigits[replybuffer.uniqueid1[2] and $0F];
  79.    hex_id := hex_id + hexdigits[replybuffer.uniqueid2[1] shr 4];
  80.    hex_id := hex_id + hexdigits[replybuffer.uniqueid2[1] and $0F];
  81.    hex_id := hex_id + hexdigits[replybuffer.uniqueid2[2] shr 4];
  82.    hex_id := hex_id + hexdigits[replybuffer.uniqueid2[2] and $0F];
  83.    ConnType := replybuffer.connType[2];
  84.   { Now we chop off leading zeros }
  85.    While hex_id[1]='0' do hex_id := copy(hex_id,2,length(hex_id));
  86.  end;
  87. end; { GetConnectInfo };
  88.  
  89.